package service.impl;

import dao.IGoodsDao;
import dao.impl.GoodsDaoImpl;
import pojo.Goods;
import service.IGoodsService;

import java.util.List;

public class GoodsServiceImpl implements IGoodsService {
    private IGoodsDao goodsDao = new GoodsDaoImpl();

    /**
     * 查询所有商品
     *
     * @return List<Goods>
     */
    @Override
    public List<Goods> queryAllGoods() {
        return goodsDao.queryAllGoods();
    }

    /**
     * 分页查询商品
     *
     * @param pageIndex 页码，从1开始
     * @param pageSize  每页商品数量
     * @return List<Goods>
     */
    @Override
    public List<Goods> queryGoodsWithPage(int pageIndex, int pageSize) {
        return goodsDao.queryGoodsWithPage(pageIndex, pageSize);
    }

    /**
     * 按照分类名称查询商品
     *
     * @param categoryName 分类名称
     * @return List<Goods>
     */
    @Override
    public List<Goods> queryGoodsByCategoryName(String categoryName) {
        return goodsDao.queryGoodsByCategoryName(categoryName);
    }

    /**
     * 按照分类名称查询商品并分页
     *
     * @param categoryName 分类名称
     * @param pageIndex
     * @param pageSize
     * @return List<Goods>
     */
    @Override
    public List<Goods> queryGoodsByCategoryNameWithPage(String categoryName, int pageIndex, int pageSize) {
        return goodsDao.queryGoodsByCategoryNameWithPage(categoryName, pageIndex, pageSize);
    }

    /**
     * 按照分类id查询商品
     *
     * @param categoryId 分类id
     * @return List<Goods>
     */
    @Override
    public List<Goods> queryGoodsByCategoryId(int categoryId) {
        return goodsDao.queryGoodsByCategoryId(categoryId);
    }

    /**
     * 根据商品名字模糊查询商品
     *
     * @param goodsName 商品名字
     * @return List<Goods>
     */
    @Override
    public List<Goods> fuzzyQueryGoodsByName(String goodsName) {
        return goodsDao.fuzzyQueryGoodsByName(goodsName);
    }

    /**
     * 根据商品id查询商品
     *
     * @param id 商品id
     * @return Goods
     */
    @Override
    public Goods queryGoodsById(int id) {
        return goodsDao.queryGoodsById(id);
    }
}
